package com.ecoolex.chinadutyfree.retailer.entity;

import com.ecoolex.framework.common.annotation.Description;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.lang.NonNull;

public class DirectMailGoodsExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    protected Integer offset;

    protected Integer rows;

    public DirectMailGoodsExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public DirectMailGoodsExample orderBy(String orderByClause) {
        this.setOrderByClause(orderByClause);
        return this;
    }

    public DirectMailGoodsExample orderBy(String ... orderByClauses) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < orderByClauses.length; i++) {
            sb.append(orderByClauses[i]);
            if (i < orderByClauses.length - 1) {
                sb.append(" , ");
            }
        }
        this.setOrderByClause(sb.toString());
        return this;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria(this);
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
        rows = null;
        offset = null;
    }

    public static Criteria newAndCreateCriteria() {
        DirectMailGoodsExample example = new DirectMailGoodsExample();
        return example.createCriteria();
    }

    public DirectMailGoodsExample when(boolean condition, IExampleWhen then) {
        if (condition) {
            then.example(this);
        }
        return this;
    }

    public DirectMailGoodsExample when(boolean condition, IExampleWhen then, IExampleWhen otherwise) {
        if (condition) {
            then.example(this);
        } else {
            otherwise.example(this);
        }
        return this;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return this.offset;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }

    public Integer getRows() {
        return this.rows;
    }

    public DirectMailGoodsExample limit(Integer rows) {
        this.rows = rows;
        return this;
    }

    public DirectMailGoodsExample limit(Integer offset, Integer rows) {
        this.offset = offset;
        this.rows = rows;
        return this;
    }

    public DirectMailGoodsExample page(Integer page, Integer pageSize) {
        this.offset = page * pageSize;
        this.rows = pageSize;
        return this;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andDirectMailGoodsIdIsNull() {
            addCriterion("directmailgoods.DirectMailGoodsId is null");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdIsNotNull() {
            addCriterion("directmailgoods.DirectMailGoodsId is not null");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdEqualTo(Integer value) {
            addCriterion("directmailgoods.DirectMailGoodsId =", value, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.DirectMailGoodsId = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdNotEqualTo(Integer value) {
            addCriterion("directmailgoods.DirectMailGoodsId <>", value, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.DirectMailGoodsId <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdGreaterThan(Integer value) {
            addCriterion("directmailgoods.DirectMailGoodsId >", value, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.DirectMailGoodsId > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.DirectMailGoodsId >=", value, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.DirectMailGoodsId >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdLessThan(Integer value) {
            addCriterion("directmailgoods.DirectMailGoodsId <", value, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.DirectMailGoodsId < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdLessThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.DirectMailGoodsId <=", value, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.DirectMailGoodsId <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdIn(List<Integer> values) {
            addCriterion("directmailgoods.DirectMailGoodsId in", values, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdNotIn(List<Integer> values) {
            addCriterion("directmailgoods.DirectMailGoodsId not in", values, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.DirectMailGoodsId between", value1, value2, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andDirectMailGoodsIdNotBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.DirectMailGoodsId not between", value1, value2, "directMailGoodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdIsNull() {
            addCriterion("directmailgoods.GoodsId is null");
            return (Criteria) this;
        }

        public Criteria andGoodsIdIsNotNull() {
            addCriterion("directmailgoods.GoodsId is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsIdEqualTo(Integer value) {
            addCriterion("directmailgoods.GoodsId =", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.GoodsId = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotEqualTo(Integer value) {
            addCriterion("directmailgoods.GoodsId <>", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.GoodsId <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andGoodsIdGreaterThan(Integer value) {
            addCriterion("directmailgoods.GoodsId >", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.GoodsId > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andGoodsIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.GoodsId >=", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.GoodsId >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andGoodsIdLessThan(Integer value) {
            addCriterion("directmailgoods.GoodsId <", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.GoodsId < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andGoodsIdLessThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.GoodsId <=", value, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.GoodsId <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andGoodsIdIn(List<Integer> values) {
            addCriterion("directmailgoods.GoodsId in", values, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotIn(List<Integer> values) {
            addCriterion("directmailgoods.GoodsId not in", values, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.GoodsId between", value1, value2, "goodsId");
            return (Criteria) this;
        }

        public Criteria andGoodsIdNotBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.GoodsId not between", value1, value2, "goodsId");
            return (Criteria) this;
        }

        public Criteria andCustomNameIsNull() {
            addCriterion("directmailgoods.CustomName is null");
            return (Criteria) this;
        }

        public Criteria andCustomNameIsNotNull() {
            addCriterion("directmailgoods.CustomName is not null");
            return (Criteria) this;
        }

        public Criteria andCustomNameEqualTo(String value) {
            addCriterion("directmailgoods.CustomName =", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CustomName = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCustomNameNotEqualTo(String value) {
            addCriterion("directmailgoods.CustomName <>", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CustomName <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCustomNameGreaterThan(String value) {
            addCriterion("directmailgoods.CustomName >", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CustomName > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCustomNameGreaterThanOrEqualTo(String value) {
            addCriterion("directmailgoods.CustomName >=", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CustomName >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCustomNameLessThan(String value) {
            addCriterion("directmailgoods.CustomName <", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CustomName < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCustomNameLessThanOrEqualTo(String value) {
            addCriterion("directmailgoods.CustomName <=", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CustomName <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCustomNameLike(String value) {
            addCriterion("directmailgoods.CustomName like", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameNotLike(String value) {
            addCriterion("directmailgoods.CustomName not like", value, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameIn(List<String> values) {
            addCriterion("directmailgoods.CustomName in", values, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameNotIn(List<String> values) {
            addCriterion("directmailgoods.CustomName not in", values, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameBetween(String value1, String value2) {
            addCriterion("directmailgoods.CustomName between", value1, value2, "customName");
            return (Criteria) this;
        }

        public Criteria andCustomNameNotBetween(String value1, String value2) {
            addCriterion("directmailgoods.CustomName not between", value1, value2, "customName");
            return (Criteria) this;
        }

        public Criteria andCounterPriceIsNull() {
            addCriterion("directmailgoods.CounterPrice is null");
            return (Criteria) this;
        }

        public Criteria andCounterPriceIsNotNull() {
            addCriterion("directmailgoods.CounterPrice is not null");
            return (Criteria) this;
        }

        public Criteria andCounterPriceEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.CounterPrice =", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CounterPrice = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.CounterPrice <>", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CounterPrice <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThan(BigDecimal value) {
            addCriterion("directmailgoods.CounterPrice >", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CounterPrice > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.CounterPrice >=", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CounterPrice >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThan(BigDecimal value) {
            addCriterion("directmailgoods.CounterPrice <", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CounterPrice < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.CounterPrice <=", value, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CounterPrice <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCounterPriceIn(List<BigDecimal> values) {
            addCriterion("directmailgoods.CounterPrice in", values, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotIn(List<BigDecimal> values) {
            addCriterion("directmailgoods.CounterPrice not in", values, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("directmailgoods.CounterPrice between", value1, value2, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andCounterPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("directmailgoods.CounterPrice not between", value1, value2, "counterPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceIsNull() {
            addCriterion("directmailgoods.RetailPrice is null");
            return (Criteria) this;
        }

        public Criteria andRetailPriceIsNotNull() {
            addCriterion("directmailgoods.RetailPrice is not null");
            return (Criteria) this;
        }

        public Criteria andRetailPriceEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.RetailPrice =", value, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.RetailPrice = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRetailPriceNotEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.RetailPrice <>", value, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.RetailPrice <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRetailPriceGreaterThan(BigDecimal value) {
            addCriterion("directmailgoods.RetailPrice >", value, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.RetailPrice > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRetailPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.RetailPrice >=", value, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.RetailPrice >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRetailPriceLessThan(BigDecimal value) {
            addCriterion("directmailgoods.RetailPrice <", value, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.RetailPrice < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRetailPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("directmailgoods.RetailPrice <=", value, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.RetailPrice <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andRetailPriceIn(List<BigDecimal> values) {
            addCriterion("directmailgoods.RetailPrice in", values, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceNotIn(List<BigDecimal> values) {
            addCriterion("directmailgoods.RetailPrice not in", values, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("directmailgoods.RetailPrice between", value1, value2, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andRetailPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("directmailgoods.RetailPrice not between", value1, value2, "retailPrice");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeIsNull() {
            addCriterion("directmailgoods.CurrencyType is null");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeIsNotNull() {
            addCriterion("directmailgoods.CurrencyType is not null");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeEqualTo(String value) {
            addCriterion("directmailgoods.CurrencyType =", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CurrencyType = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeNotEqualTo(String value) {
            addCriterion("directmailgoods.CurrencyType <>", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CurrencyType <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeGreaterThan(String value) {
            addCriterion("directmailgoods.CurrencyType >", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CurrencyType > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeGreaterThanOrEqualTo(String value) {
            addCriterion("directmailgoods.CurrencyType >=", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CurrencyType >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeLessThan(String value) {
            addCriterion("directmailgoods.CurrencyType <", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CurrencyType < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeLessThanOrEqualTo(String value) {
            addCriterion("directmailgoods.CurrencyType <=", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CurrencyType <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeLike(String value) {
            addCriterion("directmailgoods.CurrencyType like", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeNotLike(String value) {
            addCriterion("directmailgoods.CurrencyType not like", value, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeIn(List<String> values) {
            addCriterion("directmailgoods.CurrencyType in", values, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeNotIn(List<String> values) {
            addCriterion("directmailgoods.CurrencyType not in", values, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeBetween(String value1, String value2) {
            addCriterion("directmailgoods.CurrencyType between", value1, value2, "currencyType");
            return (Criteria) this;
        }

        public Criteria andCurrencyTypeNotBetween(String value1, String value2) {
            addCriterion("directmailgoods.CurrencyType not between", value1, value2, "currencyType");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdIsNull() {
            addCriterion("directmailgoods.FreightTemplateId is null");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdIsNotNull() {
            addCriterion("directmailgoods.FreightTemplateId is not null");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdEqualTo(Integer value) {
            addCriterion("directmailgoods.FreightTemplateId =", value, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.FreightTemplateId = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdNotEqualTo(Integer value) {
            addCriterion("directmailgoods.FreightTemplateId <>", value, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.FreightTemplateId <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdGreaterThan(Integer value) {
            addCriterion("directmailgoods.FreightTemplateId >", value, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.FreightTemplateId > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.FreightTemplateId >=", value, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.FreightTemplateId >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdLessThan(Integer value) {
            addCriterion("directmailgoods.FreightTemplateId <", value, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.FreightTemplateId < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdLessThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.FreightTemplateId <=", value, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.FreightTemplateId <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdIn(List<Integer> values) {
            addCriterion("directmailgoods.FreightTemplateId in", values, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdNotIn(List<Integer> values) {
            addCriterion("directmailgoods.FreightTemplateId not in", values, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.FreightTemplateId between", value1, value2, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andFreightTemplateIdNotBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.FreightTemplateId not between", value1, value2, "freightTemplateId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdIsNull() {
            addCriterion("directmailgoods.AfterServiceId is null");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdIsNotNull() {
            addCriterion("directmailgoods.AfterServiceId is not null");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdEqualTo(Integer value) {
            addCriterion("directmailgoods.AfterServiceId =", value, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.AfterServiceId = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdNotEqualTo(Integer value) {
            addCriterion("directmailgoods.AfterServiceId <>", value, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.AfterServiceId <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdGreaterThan(Integer value) {
            addCriterion("directmailgoods.AfterServiceId >", value, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.AfterServiceId > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.AfterServiceId >=", value, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.AfterServiceId >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdLessThan(Integer value) {
            addCriterion("directmailgoods.AfterServiceId <", value, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.AfterServiceId < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdLessThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.AfterServiceId <=", value, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.AfterServiceId <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdIn(List<Integer> values) {
            addCriterion("directmailgoods.AfterServiceId in", values, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdNotIn(List<Integer> values) {
            addCriterion("directmailgoods.AfterServiceId not in", values, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.AfterServiceId between", value1, value2, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andAfterServiceIdNotBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.AfterServiceId not between", value1, value2, "afterServiceId");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeIsNull() {
            addCriterion("directmailgoods.NeedIdentityInfoType is null");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeIsNotNull() {
            addCriterion("directmailgoods.NeedIdentityInfoType is not null");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeEqualTo(Integer value) {
            addCriterion("directmailgoods.NeedIdentityInfoType =", value, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.NeedIdentityInfoType = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeNotEqualTo(Integer value) {
            addCriterion("directmailgoods.NeedIdentityInfoType <>", value, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.NeedIdentityInfoType <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeGreaterThan(Integer value) {
            addCriterion("directmailgoods.NeedIdentityInfoType >", value, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.NeedIdentityInfoType > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.NeedIdentityInfoType >=", value, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.NeedIdentityInfoType >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeLessThan(Integer value) {
            addCriterion("directmailgoods.NeedIdentityInfoType <", value, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.NeedIdentityInfoType < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeLessThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.NeedIdentityInfoType <=", value, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.NeedIdentityInfoType <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeIn(List<Integer> values) {
            addCriterion("directmailgoods.NeedIdentityInfoType in", values, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeNotIn(List<Integer> values) {
            addCriterion("directmailgoods.NeedIdentityInfoType not in", values, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.NeedIdentityInfoType between", value1, value2, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andNeedIdentityInfoTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.NeedIdentityInfoType not between", value1, value2, "needIdentityInfoType");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("directmailgoods.`Status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("directmailgoods.`Status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("directmailgoods.`Status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`Status` = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("directmailgoods.`Status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`Status` <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("directmailgoods.`Status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`Status` > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.`Status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`Status` >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("directmailgoods.`Status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`Status` < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("directmailgoods.`Status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`Status` <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("directmailgoods.`Status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("directmailgoods.`Status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.`Status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("directmailgoods.`Status` not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("directmailgoods.Deleted is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("directmailgoods.Deleted is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(Boolean value) {
            addCriterion("directmailgoods.Deleted =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.Deleted = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(Boolean value) {
            addCriterion("directmailgoods.Deleted <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.Deleted <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(Boolean value) {
            addCriterion("directmailgoods.Deleted >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.Deleted > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(Boolean value) {
            addCriterion("directmailgoods.Deleted >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.Deleted >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(Boolean value) {
            addCriterion("directmailgoods.Deleted <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.Deleted < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(Boolean value) {
            addCriterion("directmailgoods.Deleted <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.Deleted <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<Boolean> values) {
            addCriterion("directmailgoods.Deleted in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<Boolean> values) {
            addCriterion("directmailgoods.Deleted not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(Boolean value1, Boolean value2) {
            addCriterion("directmailgoods.Deleted between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(Boolean value1, Boolean value2) {
            addCriterion("directmailgoods.Deleted not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andCreateUserIsNull() {
            addCriterion("directmailgoods.`CreateUser` is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIsNotNull() {
            addCriterion("directmailgoods.`CreateUser` is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserEqualTo(String value) {
            addCriterion("directmailgoods.`CreateUser` =", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`CreateUser` = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserNotEqualTo(String value) {
            addCriterion("directmailgoods.`CreateUser` <>", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`CreateUser` <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThan(String value) {
            addCriterion("directmailgoods.`CreateUser` >", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`CreateUser` > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThanOrEqualTo(String value) {
            addCriterion("directmailgoods.`CreateUser` >=", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`CreateUser` >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThan(String value) {
            addCriterion("directmailgoods.`CreateUser` <", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`CreateUser` < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThanOrEqualTo(String value) {
            addCriterion("directmailgoods.`CreateUser` <=", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.`CreateUser` <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateUserLike(String value) {
            addCriterion("directmailgoods.`CreateUser` like", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotLike(String value) {
            addCriterion("directmailgoods.`CreateUser` not like", value, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserIn(List<String> values) {
            addCriterion("directmailgoods.`CreateUser` in", values, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotIn(List<String> values) {
            addCriterion("directmailgoods.`CreateUser` not in", values, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserBetween(String value1, String value2) {
            addCriterion("directmailgoods.`CreateUser` between", value1, value2, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateUserNotBetween(String value1, String value2) {
            addCriterion("directmailgoods.`CreateUser` not between", value1, value2, "createUser");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("directmailgoods.CreateTime is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("directmailgoods.CreateTime is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("directmailgoods.CreateTime =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CreateTime = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("directmailgoods.CreateTime <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CreateTime <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("directmailgoods.CreateTime >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CreateTime > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("directmailgoods.CreateTime >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CreateTime >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("directmailgoods.CreateTime <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CreateTime < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("directmailgoods.CreateTime <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.CreateTime <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("directmailgoods.CreateTime in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("directmailgoods.CreateTime not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("directmailgoods.CreateTime between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("directmailgoods.CreateTime not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIsNull() {
            addCriterion("directmailgoods.UpdateUser is null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIsNotNull() {
            addCriterion("directmailgoods.UpdateUser is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserEqualTo(String value) {
            addCriterion("directmailgoods.UpdateUser =", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateUser = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotEqualTo(String value) {
            addCriterion("directmailgoods.UpdateUser <>", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateUser <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThan(String value) {
            addCriterion("directmailgoods.UpdateUser >", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateUser > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThanOrEqualTo(String value) {
            addCriterion("directmailgoods.UpdateUser >=", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateUser >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThan(String value) {
            addCriterion("directmailgoods.UpdateUser <", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateUser < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThanOrEqualTo(String value) {
            addCriterion("directmailgoods.UpdateUser <=", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateUser <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateUserLike(String value) {
            addCriterion("directmailgoods.UpdateUser like", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotLike(String value) {
            addCriterion("directmailgoods.UpdateUser not like", value, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIn(List<String> values) {
            addCriterion("directmailgoods.UpdateUser in", values, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotIn(List<String> values) {
            addCriterion("directmailgoods.UpdateUser not in", values, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserBetween(String value1, String value2) {
            addCriterion("directmailgoods.UpdateUser between", value1, value2, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNotBetween(String value1, String value2) {
            addCriterion("directmailgoods.UpdateUser not between", value1, value2, "updateUser");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("directmailgoods.UpdateTime is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("directmailgoods.UpdateTime is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("directmailgoods.UpdateTime =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateTime = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("directmailgoods.UpdateTime <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateTime <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("directmailgoods.UpdateTime >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateTime > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("directmailgoods.UpdateTime >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateTime >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("directmailgoods.UpdateTime <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateTime < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("directmailgoods.UpdateTime <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualToColumn(DirectMailGoods.Column column) {
            addCriterion(new StringBuilder("directmailgoods.UpdateTime <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("directmailgoods.UpdateTime in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("directmailgoods.UpdateTime not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("directmailgoods.UpdateTime between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("directmailgoods.UpdateTime not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        private DirectMailGoodsExample example;

        protected Criteria(DirectMailGoodsExample example) {
            super();
            this.example = example;
        }

        public DirectMailGoodsExample example() {
            return this.example;
        }

        @Deprecated
        public Criteria andIf(boolean ifAdd, ICriteriaAdd add) {
            if (ifAdd) {
                add.add(this);
            }
            return this;
        }

        public Criteria when(boolean condition, ICriteriaWhen then) {
            if (condition) {
                then.criteria(this);
            }
            return this;
        }

        public Criteria when(boolean condition, ICriteriaWhen then, ICriteriaWhen otherwise) {
            if (condition) {
                then.criteria(this);
            } else {
                otherwise.criteria(this);
            }
            return this;
        }

        public Criteria andLogicalDeleted(boolean deleted) {
            return deleted ? andDeletedEqualTo(DirectMailGoods.Deleted.IS_DELETED.value()) : andDeletedNotEqualTo(DirectMailGoods.Deleted.IS_DELETED.value());
        }

        @Deprecated
        public interface ICriteriaAdd {
            Criteria add(Criteria add);
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }

    public interface ICriteriaWhen {
        void criteria(Criteria criteria);
    }

    public interface IExampleWhen {
        void example(com.ecoolex.chinadutyfree.retailer.entity.DirectMailGoodsExample example);
    }
}